home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / RTLib.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  2.6 KB  |  115 lines  |  [TEXT/MPS ]

  1. (*
  2.     File:        RTLib.mod
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. *)
  11.  
  12. (*$TAGS-*)
  13. (*$CALLING PASCAL*)
  14. MODULE RTLib;
  15.  
  16. IMPORT SYSTEM, Types;
  17.  
  18.  
  19. CONST
  20.     (*
  21.             Error Codes
  22.     *)
  23.     eRTNoErr*                = 0;
  24.     eRTBadVersion*        = 2;
  25.     eRTInvalidOp*        = 4;
  26.     eRTInvalidJTPtr*    = 6;
  27.  
  28.     (*
  29.             Action Codes
  30.     *)
  31.     kRTSysErr*    = 0;
  32.     kRTRetry*        = 1;
  33.     kRTContinue*    = 2;
  34.  
  35.     (*
  36.             Runtime Operations
  37.     *)
  38.     kRTGetVersion*            = 10;
  39.     kRTGetVersionA5*        = 11;
  40.     kRTGetJTAddress*        = 12;
  41.     kRTGetJTAddressA5*        = 13;
  42.     kRTSetPreLoad*            = 14;
  43.     kRTSetPreLoadA5*        = 15;
  44.     kRTSetSegLoadErr*        = 16;
  45.     kRTSetSegLoadErrA5*    = 17;
  46.     kRTSetPostLoad*            = 18;
  47.     kRTSetPostLoadA5*        = 19;
  48.     kRTSetPreUnload*        = 20;
  49.     kRTSetPreUnloadA5*        = 21;
  50.     kRTPreLaunch*            = 22;
  51.     kRTPostLaunch*            = 23;
  52.  
  53.     (*
  54.             Version Definitions
  55.     *)
  56.     kVERSION32BIT*            = $FFFF;
  57.     kVERSION16BIT*            = $0000;
  58.     
  59.  
  60. TYPE
  61.     (*
  62.             RTState Definition
  63.     *)
  64.     RTState* = RECORD 
  65.         fVersion*:    INTEGER;                        (* run-time version *)
  66.         fSP*:            Types.Ptr;                                (* SP*: &-of user return address *)
  67.         fJTAddr*:        Types.Ptr;                                (* PC*: &-of called jump table entry *)
  68.         fRegisters*: ARRAY 15 (*ΔΔ[0..14]ΔΔ*) OF LONGINT;    (* registers D0-D7 and A0-A6 when *)
  69.                                                             (*        _LoadSeg was called *)
  70.         fSegNo*:        INTEGER;                            (*    segment number *)
  71.         fSegType*:    Types.ResType;                            (*    segment type (normally LONG("CODE")) *)
  72.         fSegSize*:    LONGINT;                            (*    segment size *)
  73.         fSegInCore*:    BOOLEAN;                            (*    true if segment is in memory *)
  74.         fReserved1*:    BOOLEAN;                            (* (reserved for future use) *)
  75.         fOSErr*:        Types.OSErr;                            (*    error number *)
  76.         fReserved2*:    LONGINT;                            (* (reserved for future use) *)
  77.     END;
  78.     
  79.     RTStatePtr* = POINTER TO RTState;    
  80.     
  81.     (*
  82.             Runtime Parameter Block
  83.     *)
  84.     
  85.     (*ΔΔ RTParam* = (RTGetVersionParam, RTGetJTAddrParam, RTSetSegLoadParam);*)
  86.     RTParam* = SHORTINT;
  87. CONST
  88.     RTGetVersionParam* = 0; RTGetJTAddrParam* = 1; RTSetSegLoadParam* = 2;
  89. TYPE
  90.     
  91.     RTPB* = RECORD 
  92.         fOperation*:        INTEGER;                        (* operation *)
  93.         fA5*:                Types.Ptr;                            (* A5-world *)
  94.     END;
  95.     RTGetVersionPB* = RECORD(RTPB)
  96.         fVersion*:    INTEGER;                (* run-time version (returned) *)
  97.     END;
  98.     RTGetJTAddrPB* = RECORD(RTPB)
  99.         fJTAddr*:    Types.Ptr;                        (* ptr to jt entry *)
  100.         fCodeAddr*:    Types.Ptr;                        (* code address w/i jt entry (returned) *)
  101.     END;
  102.     RTSetSegLoadPB* = RECORD(RTPB)
  103.         fUserHdlr*:        Types.Ptr;                    (* ptr to user handler *)
  104.         fOldUserHdlr*:    Types.Ptr;                    (* ptr to old user handler (returned) *)
  105.     END;
  106.     
  107.     RTPBPtr* = POINTER TO RTPB;
  108.  
  109.  
  110. PROCEDURE Runtime* (runtime_parms: RTPBPtr): Types.OSErr;
  111.     EXTERNAL PASCAL;
  112.  
  113.  
  114.     END RTLib.
  115.